home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs10.d81
/
dark88-4.sfx
/
m.p1200.a1
(
.txt
)
< prev
Wrap
Commodore BASIC
|
1990-02-12
|
5KB
|
240 lines
1000 REM * DARKTERM '88
1010 REM * POCKET 1200 MODEM FILE SRC
1020 REM *
1030 OPEN1,9,15,"S0:D'88.P1200":CLOSE1
1040 OPEN2,9,1,"0:D'88.P1200"
1050 SYS700
1060 .OPT O2
1070 ;
1080 CHKIN =$FFC6 ; KERNAL EQUATES
1090 CHKOUT =$FFC9
1100 CHRIN =$FFCF
1110 CHROUT =$FFD2
1120 CLRCHN =$FFCC
1130 GETIN =$FFE4
1140 ;
1150 PTR =140 ; TEMP POINTER
1160 BAUD =873
1170 ;
1180 DETECT =922 ; CARRIER DETECT FLAG
1190 DDELAY =927 ; DIALING DELAY
1200 WDELAY =926 ; CARRIER WAIT DELAY
1210 HDELAY =925 ; HANGUP DELAY
1220 ;
1230 MILLI =$880+24 ; USE TERMINAL'S
1240 ;
1250 *=$4500 ; STARTS HERE UP TO $47FF
1260 ;
1270 JMP ANSWER ; AUTO-ANSWER
1280 JMP DODIAL ; AUTO-DIAL
1290 JMP ONHOOK ; LABEL SAYS ALL
1300 JMP OFHOOK ; OFF HOOK
1310 JMP CARCHK ; LOST CARRIER CHECK
1320 JMP CUSTOM ; USER DEFINED ROUTINE
1330 JMP HANGUP ; HANGUP ROUTINE
1340 ;
1350 ONHOOK LDA #$22 ; IS THIS RIGHT
1360 STA $DD03
1370 LDA #0
1380 STA $DD01
1390 RTS
1400 ;
1410 OFHOOK LDA #$20 ; OFF-HOOK
1420 STA $DD01 ; PIN J HI
1430 RTS
1440 ;
1450 DODIAL STX PTR ; SAVE ADDRESS
1460 STY PTR+1 ; OF DIAL PTR STRING
1470 JSR ONHOOK ; HANG UP
1480 LDA HDELAY ; WAIT HDELAY SECONDS
1490 JSR WAIT
1500 JSR OFHOOK ; OFF-HOOK
1510 LDA #2 ; WAIT 2 SECONDS
1520 JSR WAIT
1530 LDY #0 ; INDEX TO START
1540 STY POINT
1550 AUTO1 LDY POINT ; GET INDEX
1560 LDA (PTR),Y ; AND CHARACTER
1570 CMP #"0" ; CHECK FOR NUMBER
1580 BCC NEXT ; NO
1590 CMP #":"
1600 BCS NEXT ; NO
1610 SEC ; LESS 48 TO GET # OF
1620 SBC #48 ; PULSES
1630 BNE AUTO2
1640 LDA #10 ; 0, SO MAKE 10 PULSES
1650 AUTO2 STA PULSE ; SAVE IT
1660 LDA #0 ; PULSE COUNT
1670 STA COUNT
1680 AUTO3 JSR (null)OF ; PULSE OFF LINE
1690 LDX DDELAY ; WAIT DELAY
1700 LDY DDELAY+1
1710 JSR MILLI ; WAIT IT OUT
1720 JSR OFHOOK ; PULSE ON LINE
1730 LDX DDELAY ; WAIT AGAIN
1740 LDY DDELAY+1
1750 JSR MILLI
1760 INC COUNT ; NEXT PULSE
1770 LDA COUNT
1780 CMP PULSE ; DONE YET
1790 BNE AUTO3 ; NO
1800 LDA #40 ; WAIT 2/3 SEC FOR NEXT #
1810 JSR JIFFY
1820 JSR ABORT ; CHECK FOR STOP KEY
1830 NEXT INC POINT ; NEXT #
1840 LDA POINT
1850 CMP #18 ; DONE ALL 18 CHARS
1860 BNE AUTO1 ; NO, (null) BACK
1870 LDA WDELAY ; WAIT OUT THE DELAY
1880 JSR WAIT
1890 LDA $DD01 ; HAVE A CARRIER
1900 AND #16
1910 BEQ AUTO4 ; YES, SIGNAL IT
1920 SEC ; NO, SET ZERO FLAG TRUE
1930 LDA #0 ; AND SET CARRY (NOT ABORT)
1940 RTS
1950 AUTO4 SEC ; HAVE CARRIER, SET
1960 LDA #1 ; ZERO FALSE
1970 RTS ; EXIT
1980 ;
1990 ABORT LDA $91 ; CHECK STOP KEY
2000 CMP #$7F
2010 BNE ABO1 ; NO, (null) BACK
2020 ABO0 PLA ; PULL RETURN ADDRESS
2030 PLA
2040 CLC ; CLEAR THE CARRY
2050 ABO1 RTS ; AND EXIT TO TERMINAL
2060 ;
2070 WAIT TAX ; 1 SECOND COUNTER
2080 W0 JSR CLRTIM
2090 W1 LDA $91 ; CHECK FOR ABORT
2100 CMP #$7F ; DURING THE WAIT
2110 BEQ ABO0
2120 LDA $A2
2130 CMP #60
2140 BCC W1
2150 DEX
2160 BMI W2
2170 BNE W0
2180 W2 RTS
2190 ;
2200 POINT .BYT 0
2210 COUNT .BYT 0
2220 PULSE .BYT 0
2230 KEYVAL .BYT 0
2240 ;
2250 ANSWER LDA #32+2
2260 STA $DD03 ; SET UP DDR
2270 LDA #0
2280 STA $DD01
2290 LDA #60 ; WAIT 1 SECOND
2300 JSR JIFFY
2310 AN1 LDA $DD01 ; CHECK FOR RING
2320 AND #8 ; DETECT
2330 BEQ AN2 ; WE HAVE R.D., (null) ON
2340 JSR GETKEY ; CHECK FOR KEYPRESS
2350 BEQ AN1
2360 AN0 JSR OFHOOK ; OFF-HOOK
2370 LDA KEYVAL ; GET KEY PRESSED
2380 CLC ; AND ABORT
2390 RTS
2400 AN2 JSR CLRTIM
2410 JSR OFHOOK ; OFF-HOOK
2420 AN3 JSR GETKEY
2430 BNE AN0
2440 LDA $DD01 ; CHECK FOR DCD LINE
2450 AND #16
2460 BEQ AN4 ; (null)T CARRIER, SIGNAL
2470 LDA 160
2480 CMP #8 ; 30 SECOND CARRIER CHECK
2490 BCC AN3
2500 BCS ANSWER ; TIMES UP, RESET
2510 AN4 JMP CSPEED ; SPEED CHECK
2520 ; LDX #<300 ; SET BAUD RATE TO 300
2530 ; LDY #>300
2540 ; RTS
2550 ;
2560 (null)OF LDA #0 ; PULSE ON-HOOK
2570 STA $DD01
2580 RTS
2590 ;
2600 CLRTIM LDA #0
2610 STA $A0
2620 STA $A1
2630 STA $A2
2640 RTS
2650 ;
2660 JIFFY TAX
2670 JSR CLRTIM
2680 JIFF1 CPX $A2
2690 BCS JIFF1
2700 RTS
2710 ;
2720 GETKEY JSR GETIN
2730 PHA
2740 STA KEYVAL
2750 PLA
2760 RTS
2770 ;
2780 HANGUP JSR ONHOOK ; (null) ON-HOOK
2790 LDA #120 ; WAIT 2 SECONDS
2800 JSR JIFFY
2810 LDA $DD01
2820 AND #16
2830 BEQ HANGUP ; DO UNTIL HUNG UP
2840 JSR OFHOOK ; SET UP FOR NEXT CALL
2850 LDA #120 ; WAIT 2 SECONDS
2860 JMP JIFFY
2870 ;
2880 CARCHK BIT DETECT
2890 BPL CAR1 ; SKIP DETECTION
2900 LDA $DD01
2910 AND #16
2920 BEQ CAR1 ; STILL HAVE CARRIER
2930 CLC
2940 RTS ; CARRIER LOST
2950 CAR1 SEC
2960 RTS
2970 ;
2980 CUSTOM LDX BAUD
2990 LDY BAUD+1
3000 CPX #<1200
3010 BNE CST1
3020 CPY #>1200
3030 BNE CST1
3040 LDA $DD01
3050 ORA #2 ; SET PORT BIT FOR 1200
3060 BNE CST2
3070 CST1 LDA $DD01
3080 AND #%11111101
3090 CST2 STA $DD01
3100 RTS
3110 ;
3120 ; * THIS ROUTINE WILL USE THE
3130 ; PORT REGISTER TO DETECT THE
3140 ; BAUD RATE OF THE INCOMING
3150 ; CALL.
3160 ;
3170 CSPEED JSR CLRTIM
3180 LDA #30 ; WAIT .5 SECONDS
3190 JSR JIFFY
3200 JSR CLRTIM
3210 CSP1 LDA $DD01
3220 AND #1
3230 BEQ CSP2 ; LINE IS LO, 1200 BAUD
3240 LDA $A2
3250 CMP #6 ; CHECK FOR 100 MILLISEC
3260 BCC CSP1
3270 LDX #<300 ; 300 BAUD
3280 LDY #>300
3290 SEC
3300 RTS
3310 CSP2 LDX #<1200
3320 LDY #>1200 ; 1200 BAUD CONNECT
3330 LDA $DD01
3340 ORA #2 ; SET FOR 1200 BAUD
3350 STA $DD01
3360 SEC
3370 RTS
3380 ;